DBSCAN এবং Silhouette Score

Machine Learning - পাইথন ডেটা সায়েন্স (Python Data Science) - Clustering Techniques
277

DBSCAN এবং Silhouette Score দুটি শক্তিশালী পরিসংখ্যানিক কৌশল, যা মূলত ক্লাস্টারিং কাজের জন্য ব্যবহৃত হয়। DBSCAN হল একটি ক্লাস্টারিং অ্যালগরিদম এবং Silhouette Score একটি মূল্যায়ন মেট্রিক যা ক্লাস্টারিং অ্যালগরিদমের কার্যকারিতা মূল্যায়ন করতে সহায়ক।

এখন, বিস্তারিতভাবে আলোচনা করা যাক:


১. DBSCAN (Density-Based Spatial Clustering of Applications with Noise)

DBSCAN হল একটি ডেন্সিটি-বেসড ক্লাস্টারিং অ্যালগরিদম যা একটি ডেটাসেটে ক্লাস্টার তৈরি করার জন্য density এর উপর ভিত্তি করে কাজ করে। এটি মূলত একটি অঞ্চলে ঘনত্ব বেশি থাকলে সেখান থেকে ক্লাস্টার তৈরি করে এবং কম ঘনত্বযুক্ত অঞ্চলগুলিকে noise বা আউটলায়ার হিসেবে চিহ্নিত করে।

DBSCAN এর প্রধান বৈশিষ্ট্য:

  • Density-based clustering: DBSCAN একটি অঞ্চলে ঘন ডেটা পয়েন্ট (high-density areas) সনাক্ত করে এবং তাদের একটি ক্লাস্টারে যুক্ত করে। যেখানে ঘনত্ব কম, সেখানে এটি আউটলায়ার বা noise হিসেবে চিহ্নিত করে।
  • No need for pre-defined clusters: DBSCAN একটি বড় সুবিধা হল এটি ক্লাস্টারের সংখ্যা পূর্বাভাস দেওয়ার প্রয়োজনীয়তা অনুভব করে না, অর্থাৎ এটি নিজেই ক্লাস্টারের সংখ্যা নির্ধারণ করে।
  • Noise detection: DBSCAN কম ঘনত্বের অঞ্চলে থাকা ডেটা পয়েন্টগুলিকে noise বা আউটলায়ার হিসেবে চিহ্নিত করে।
  • Works well with irregular shapes: DBSCAN সাধারণত ঐতিহ্যগত K-means ক্লাস্টারিং অ্যালগরিদমের মতো গোলাকার (spherical) ক্লাস্টারের চেয়ে অ-গোলাকার (non-spherical) ক্লাস্টার শনাক্ত করতে সক্ষম।

DBSCAN এর প্যারামিটার:

  • Epsilon (ε): দুটি ডেটা পয়েন্টের মধ্যে সর্বাধিক দূরত্ব যা তাদেরকে একই ক্লাস্টারে অন্তর্ভুক্ত করার জন্য প্রয়োজনীয়। এটি ডেটার ঘনত্ব পরিমাপ করতে সহায়ক।
  • MinPts: এটি একটি ডেটা পয়েন্টকে কেন্দ্র হিসেবে চিহ্নিত করার জন্য কমপক্ষে কতটি প্রতিবেশী পয়েন্ট থাকতে হবে।

DBSCAN এর কাজের প্রক্রিয়া:

  1. Core points: যেগুলির আশেপাশে কমপক্ষে MinPts প্রতিবেশী পয়েন্ট আছে।
  2. Border points: যেগুলি core point এর প্রতিবেশী পয়েন্ট, কিন্তু তাদের নিজস্ব MinPts প্রতিবেশী নেই।
  3. Noise points: যেগুলি না core point, না border point এবং MinPts প্রতিবেশী নেই।

DBSCAN এর উদাহরণ:

from sklearn.cluster import DBSCAN
import numpy as np

# উদাহরণ ডেটাসেট
X = np.array([[1, 2], [1, 3], [1, 4], [10, 10], [10, 11], [10, 12]])

# DBSCAN ক্লাস্টারিং
db = DBSCAN(eps=3, min_samples=2).fit(X)

# ক্লাস্টারের আউটপুট
print(db.labels_)

এখানে labels_ আউটপুট ডেটার ক্লাস্টারের জন্য নির্ধারিত ক্লাস্টার লেবেল সরবরাহ করবে (যদি কোনও ক্লাস্টার না থাকে তবে -1 হবে, যা noise).


২. Silhouette Score

Silhouette Score হল একটি পরিসংখ্যানিক পরিমাপ যা ক্লাস্টারিং অ্যালগরিদমের কার্যকারিতা মূল্যায়ন করতে ব্যবহৃত হয়। এটি প্রতিটি ডেটা পয়েন্টের ক্লাস্টারের মধ্যে সম্পর্ক এবং অন্যান্য ক্লাস্টারের সাথে তার পার্থক্য পরিমাপ করে, এবং একটি স্কোর প্রদান করে যা ক্লাস্টারের মান এবং সংকোচনতা (cohesion and separation) এর ভিত্তিতে।

Silhouette Score এর ব্যাখ্যা:

  • Silhouette Score মান -1 থেকে 1 এর মধ্যে থাকে।
    • 1: ক্লাস্টারের মধ্যে পয়েন্টগুলি খুব কাছাকাছি এবং অন্য ক্লাস্টারের পয়েন্টগুলি অনেক দূরে।
    • 0: পয়েন্টটি তার নিজস্ব ক্লাস্টারে অথবা অন্য ক্লাস্টারের সীমানায় অবস্থান করছে।
    • -1: পয়েন্টটি ভুল ক্লাস্টারে অন্তর্ভুক্ত হয়েছে।

Silhouette Score এর গাণিতিক সূত্র:

Silhouette Score প্রতিটি ডেটা পয়েন্টের জন্য দুইটি পরিমাপ ব্যবহার করে:

  • a(i): ডেটা পয়েন্ট i এর জন্য তার নিজস্ব ক্লাস্টারের মধ্যে গড় দূরত্ব (cohesion)।
  • b(i): ডেটা পয়েন্ট i এর জন্য তার কাছাকাছি অন্য ক্লাস্টারের মধ্যে গড় দূরত্ব (separation)।

Silhouette Score এর সূত্র:

S(i)=b(i)a(i)max(a(i),b(i))S(i) = \frac{b(i) - a(i)}{\max(a(i), b(i))}

এখানে:

  • S(i)S(i) হল পয়েন্ট i এর Silhouette Score,
  • a(i)a(i) হল পয়েন্ট i এর নিজস্ব ক্লাস্টারে দূরত্ব,
  • b(i)b(i) হল পয়েন্ট i এর অন্য ক্লাস্টারের সাথে দূরত্ব।

Silhouette Score কিভাবে গণনা করা হয়:

from sklearn.cluster import DBSCAN
from sklearn.metrics import silhouette_score
import numpy as np

# উদাহরণ ডেটাসেট
X = np.array([[1, 2], [1, 3], [1, 4], [10, 10], [10, 11], [10, 12]])

# DBSCAN ক্লাস্টারিং
db = DBSCAN(eps=3, min_samples=2).fit(X)

# Silhouette Score হিসাব করা
score = silhouette_score(X, db.labels_)
print(f"Silhouette Score: {score}")

এখানে, Silhouette Score দ্বারা নির্ধারণ করা হয় যে ডেটা পয়েন্টগুলির মধ্যে ক্লাস্টারের অভ্যন্তরীণ সম্পর্ক এবং বিভিন্ন ক্লাস্টারের মধ্যে সীমানার পার্থক্য কেমন।


সারাংশ

  • DBSCAN (Density-Based Spatial Clustering of Applications with Noise) একটি density-based clustering অ্যালগরিদম, যা ক্লাস্টারের মধ্যে ঘন ডেটা পয়েন্ট সনাক্ত করে এবং কম ঘন ডেটা পয়েন্টকে noise বা আউটলায়ার হিসেবে চিহ্নিত করে।
  • Silhouette Score হল একটি মূল্যায়ন মেট্রিক, যা ক্লাস্টারিং অ্যালগরিদমের কার্যকারিতা পরিমাপ করে, এটি ডেটা পয়েন্টের ক্লাস্টারের মধ্যে সম্পর্ক এবং অন্যান্য ক্লাস্টারের সাথে তার পার্থক্য মাপার মাধ্যমে কাজ করে।

এই দুটি টুল আপনার ক্লাস্টারিং মডেলগুলির কার্যকারিতা এবং তাদের সঠিকতা পর্যালোচনা করতে সহায়ক।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...